RTOS添加sensor

Version 1.0


1. 概述

RTOS和Linux共用sensor driver,想要RTOS支持sensor,只需Linux下支持的sensor即可。

sensor驱动路径:rtk/proj/sc/driver/sensordriver/

2. 添加方法

已有sensor driver后,RTOS添加步骤如下,以添加gc2053为例:

  1. rtk/proj/sc/driver/sensordriver/drv/rtk_sensor.mak

    rtk_sensor.mak中的SRC_C_LIST中添加:

    ifneq (,$(filter _SENSOR_GC2053_,$(SENSOR_SET)))
    SRC_C_LIST += drv_ms_cus_gc2053_MIPI.c
    endif
    
  2. rtk/proj/sc/driver/sensordriver/drv/src/drv_ms_cus_gc2053_MIPI.c

    将msleep改为 SENSOR_MSLEEP,语法报错按照提示修改即可,比如:

    SensorReg_Read(0x17, &HFlip);
    

    改为

    SensorReg_Read(0x17, (void*)&HFlip);
    
  3. rtk/proj/sc/driver/sensordriver/rtk/rtk_sensor_module_init.c

    1. 添加外部函数声明

      #if defined(_SENSOR_GC2053_)
      extern int gc2053_init_driver(unsigned char chmap);
      #endif
      
    2. 在void rtk_sensor_module_init(void)函数中,添加初始化函数

      #if defined(_SENSOR_GC2053_)
      #if (_SENSOR_GC2053_ == 0)
      gc2053_init_driver(_SENSOR0_CHMAP_);
      #elif (_SENSOR_GC2053_ == 1)
      g2053_init_driver(_SENSOR1_CHMAP_);
      #endif
      #endif
      
  4. rtk/proj/mak/product/options_xxx.mak

    在工程对应的product config下增加一行:

    CONFIG_SENSOR0_GC2053 = TRUE
    

    在不使用时可改为FALSE,则编译时将不加入编译。

  5. rtk/proj/mak/common/common_option.mak

    修改通用选项,对CONFIG_SENSOR0_GC2053作解析在编译时将添加_SENSOR_GC2053_宏:

    ifeq ($(call FIND_COMPILER_OPTION, CONFIG_SENSOR0_GC2053), TRUE)
    SENSOR0_SET = _SENSOR_GC2053_
    endif